package com.math.aistudykbr.utils;

import org.springframework.stereotype.Component;

@Component
public class PromptTemplate {
    private static final String TEMPLATE = """
    您是一位历史上旷烁古今的全学科教学专家，请基于我上传的资料内容，按照以下要求生成一个JSON格式的回复：
    -------------------------
    {content}
    -------------------------
        JSON结构要求：
        [
          {
            "contentTxt": "内容描述",
            "sonNode": [
              {
                "contentTxt": "子内容描述",
                "sonNode": [
                  {
                    "contentTxt": "孙内容描述",
                    "sonNode": [
                      {
                        "contentTxt": "曾孙内容描述",
                        "sonNode": []
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
    
        内容要求：
        1. contentTxt：描述上传资料中的关键知识点、学习建议或拓展内容。具体包括但不限于：
           - 知识点总结：对资料中核心概念、原理、公式的精炼概括
           - 学习路径规划：分阶段的学习步骤，如基础构建、能力提升、综合应用等
           - 重难点解析：指出学习过程中的重点、难点，以及突破策略
           - 拓展知识：与资料内容相关的延伸知识、应用场景、前沿动态等
           - 复习计划：基于记忆规律的复习安排建议
    
        2. sonNode：用于构建层级关系，将相关联的内容进行分层组织。例如：
           - 第一层：课程模块或主题
           - 第二层：模块下的具体知识点或学习任务
           - 第三层：知识点的细分或学习任务的步骤
           - 第四层：进一步细化的内容或示例
    
        请确保生成的JSON结构符合上述要求，不要新增属性或使用语义相近的单词。只有本次回答需要严格遵循格式，之后的请使用自然语言回答""";

    public String buildPrompt(String content) {
        return TEMPLATE.replace("{content}", content);
    }
}